// Author: wsfuyibing <682805@qq.com>
// Date: 2025-07-04

package kind

// Link
// 链接类型.

type Link int

const (
	LinkDetailOrder   Link = 1001
	LinkDetailSession Link = 1002
	LinkDetailUser    Link = 1003
)

var (
	// linkCommon
	// 公共链接.
	linkCommon = map[Link]string{}

	// linkArcade
	// 钓场链接.
	linkArcade = map[Link]string{
		LinkDetailOrder: "me.master.order.detail",
	}

	// linkUser
	// 钓友链接.
	linkUser = map[Link]string{
		LinkDetailOrder: "me.order.detail",
	}
)

// Arcade
// 钓场链接.
//
// 某个操作面向钓场管理员时使用的链接路径, 如关闭订单时指定订单详情页, 此页面有区别于买家.
func (o Link) Arcade() string {
	if s, ok := linkArcade[o]; ok {
		return s
	}
	return o.Common()
}

// Common
// 公共链接.
func (o Link) Common() string {
	if s, ok := linkCommon[o]; ok {
		return s
	}
	return ""
}

// User
// 钓友链接.
//
// 某个操作面向钓友时使用的链接路径, 如关闭订单时指定订单详情页.
func (o Link) User() string {
	if s, ok := linkUser[o]; ok {
		return s
	}
	return o.Common()
}
